package com.siqi.hr.system.custom.utils;

import com.siqi.hr.system.common.sql.SField;
import com.siqi.hr.system.common.sql.SFieldType;

public class SqlBuildUtils {

    public static StringBuilder buildupColumuOption(SField field, int length2, String defaultValue2, Integer precision) {
        StringBuilder sb = new StringBuilder();
        sb.append(field.getName()).append(" ");

        if ((field.isQuote()) && (field.getName().split("_")[1].equals("sys"))) {
            sb.append(SFieldType.DatabaseType.INT.getDataBaseType());
            length2 = 11;
        } else {
            sb.append(field.getSFieldType().getDatabaseType().getDataBaseType());
        }

        if ((field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.DATETIME) && (field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.TIMESTAMP)
            && (field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.DATE) && (field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.BIT)
            && (field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.TEXT) && (field.getSFieldType().getDatabaseType() != SFieldType.DatabaseType.MEDIUMTEXT)) {
            sb.append("(").append(length2);
            if (field.getSFieldType().getDatabaseType() == SFieldType.DatabaseType.DECIMAL) {
                sb.append("," + precision);
            }
            sb.append(")");
        }

        if ((defaultValue2 != null) && (!defaultValue2.equals(""))) {
            sb.append(" default ").append(surroundValue(field.getSFieldType(), defaultValue2));
        }
        return sb;
    }

    public static String surroundValue(SFieldType sFieldType, String value) {
        if (sFieldType.getDatabaseType().needSingleQuotationMarks()) {
            String s = sFieldType.getDatabaseType().getCode();
            if ((s.equals("decimal")) && (value.equals(""))) {
                return "'0'";
            }

            if (value.equals("")) {
                return "null";
            }

            return "'" + value + "'";
        }

        if (value.equals("")) {
            return "null";
        }
        return value;
    }

    public static void main(String[] args) {
        System.out.println(SFieldType.DatabaseType.INT.getDataBaseType());
    }
}
